home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / misc / 40 / timeout.c < prev    next >
C/C++ Source or Header  |  1986-07-17  |  1KB  |  63 lines

  1. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  2. /* timeout.c - version 1.0.3 */
  3.  
  4. #include    "hack.h"
  5.  
  6. timeout(){
  7. register struct prop *upp;
  8.     if(Stoned) stoned_dialogue();
  9.     for(upp = u.uprops; upp < u.uprops+SIZE(u.uprops); upp++)
  10.          if((upp->p_flgs & TIMEOUT) && !(--upp->p_flgs & TIMEOUT)) {
  11.         if(upp->p_tofn) (*upp->p_tofn)();
  12.         else switch(upp - u.uprops){
  13.         case STONED:
  14.             killer = "cockatrice";
  15.             done("died");
  16.             break;
  17.         case SICK:
  18.             pline("You die because of food poisoning.");
  19.             killer = u.usick_cause;
  20.             done("died");
  21.             break;
  22.         case FAST:
  23.             pline("You feel yourself slowing down.");
  24.             break;
  25.         case CONFUSION:
  26.             pline("You feel less confused now.");
  27.             break;
  28.         case BLIND:
  29.             pline("You can see again.");
  30.             setsee();
  31.             break;
  32.         case INVIS:
  33.             on_scr(u.ux,u.uy);
  34.             pline("You are no longer invisible.");
  35.             break;
  36.         case WOUNDED_LEGS:
  37.             heal_legs();
  38.             break;
  39.         }
  40.     }
  41. }
  42.  
  43. /* He is being petrified - dialogue by inmet!tower */
  44. char *stoned_texts[] = {
  45.     "You are slowing down.",        /* 5 */
  46.     "Your limbs are stiffening.",        /* 4 */
  47.     "Your limbs have turned to stone.",    /* 3 */
  48.     "You have turned to stone.",        /* 2 */
  49.     "You are a statue."            /* 1 */
  50. };
  51.  
  52. stoned_dialogue()
  53. {
  54.     register long i = (Stoned & TIMEOUT);
  55.  
  56.     if(i > 0 && i <= SIZE(stoned_texts))
  57.         pline(stoned_texts[SIZE(stoned_texts) - i]);
  58.     if(i == 5)
  59.         Fast = 0;
  60.     if(i == 3)
  61.         nomul(-3);
  62. }
  63.